package com.ziyueyuwen.xiniao.service.report;

import com.ziyueyuwen.xiniao.bean.report.StudentLessonReportVO;
import com.ziyueyuwen.xiniao.bean.report.ZyStudentLessonReport;
import com.ziyueyuwen.xiniao.bean.subscription.ZySubscriptionMsgDO;

import java.util.List;

/**
 * @author wancheng  on 2019/3/15.
 */
public interface ReportService {

    /**
     * 生产该课节的学生的课堂报告
     * @param lessonId
     * @return
     */
    List<StudentLessonReportVO> produceLessonReport(Integer lessonId);

    /**
     * 保存报告前获取报告的基本信息
     * 如果为空,则保存一份并返回
     * @param studentAccount String
     * @param lessonId Integer
     */
    ZyStudentLessonReport getReportMsgWhileIsNUllToSave(String studentAccount, Integer lessonId);

    /**
     * 修改学生的课堂报告分数
     * @param studentAccount
     * @param lessonId
     */
    void updateReportScore(String studentAccount, Integer lessonId);

    /**
     * 修改学生课堂报告的奖杯数
     * @param studentAccount
     * @param lessonId
     * @param award
     */
    void updateReportAward(String studentAccount, Integer lessonId,Integer award);

    /**
     * eeo推送数据解析,修改学生课堂奖杯数
     * @param eeoAwardData
     */
    void updateReportAward(ZySubscriptionMsgDO eeoAwardData);
    /**
     * 修改
     * @param report
     * @return
     */
    Boolean updateByPreKey(ZyStudentLessonReport report);

    /**
     * 获取课节的课堂报告
     * @param lessonId
     * @return
     */
    List<StudentLessonReportVO> getStudentLessonReport(Integer lessonId);

    /**
     * 查询多个
     * @param report
     * @return
     */
    List<ZyStudentLessonReport> getReport(ZyStudentLessonReport report);

    ZyStudentLessonReport getOne(ZyStudentLessonReport report);

    /**
     * 给老师发送钉钉通知 填写课堂报告
     * @param lessonId
     */
    void sendMsgForTeacherFillInReport(Integer lessonId);

    void sendMsgForStudentReport(Integer lessonId,String userAccount);
}
